import CryptoJS from "crypto-js";
/**
 * author: rdy
 * 解密
 */
//密钥
const key = CryptoJS.enc.Utf8.parse("w4hjo7w8cs2djo34");
//偏移量
const iv = CryptoJS.enc.Utf8.parse("dhb23b7oi20g7f7e");

/**
 * AES对称解密
 * @param {Object} params 加密参数
 */
export function Decrypt(params) {
  //base64格式密文转换
  const base64 = CryptoJS.enc.Base64.parse(params);
  const str = CryptoJS.enc.Base64.stringify(base64);
  //解密
  const decryptedData = CryptoJS.AES.decrypt(str, key, {
    iv: iv,
    mode: CryptoJS.mode.CBC, //AES加密模式
    padding: CryptoJS.pad.Pkcs7, //填充方式
  });
  return CryptoJS.enc.Utf8.stringify(decryptedData).toString(); //返回明文
}

/**
 * AES对称加密
 * @param {Object} params 明文参数
 */
export function Encrypt(params) {
  //明文参数(解析成utf8)
  const str = CryptoJS.enc.Utf8.parse(params);
  //加密
  const encryptedData = CryptoJS.AES.encrypt(str, key, {
    iv: iv,
    mode: CryptoJS.mode.CBC, //AES加密模式
    padding: CryptoJS.pad.Pkcs7, //填充方式
  });
  return CryptoJS.enc.Base64.stringify(encryptedData.ciphertext); //返回base64格式密文
}
